package com.tjn.set_;

import java.util.HashSet;

/**
 * @author 陶镓妮
 * @version 1.0
 */
public class HashSet_ {
    @SuppressWarnings("all")
    public static void main(String[] args) {
        HashSet hashSet = new HashSet();
        /*
        public HashSet() {
            com.tjn.map = new HashMap<>();
        }HashSet实际上是HashMap
         */
        //和Set接口一样，HashSet可以存放一个null，元素不能重复，元素放入顺序和取出顺序不一致

        //执行add方法之后会返回boolean值，turn或false
        System.out.println(hashSet.add(null));//T
        System.out.println(hashSet.add(null));// F
        System.out.println(hashSet.add(1));//T
        System.out.println(hashSet.add(1));// F
        System.out.println(hashSet.add(2));//T
        System.out.println(hashSet.add(3));//T
        System.out.println(hashSet.add(4));//T

        hashSet.remove(3);
        System.out.println(hashSet);

        hashSet.add("5");//可以添加
        hashSet.add("5");//不能添加
        hashSet.add(new Dog("Tom"));//可以添加
        hashSet.add(new Dog("Tom"));//可以参加，因为这是两个对象，只是内容相同，但是地址是不同的
        System.out.println(hashSet);

        hashSet.add(new String("Jone"));//可以添加
        hashSet.add(new String("Jone"));//不能添加
        System.out.println(hashSet);
    }

}

class Dog{
    String name;

    public Dog(String name) {
        this.name = name;
    }

    @Override
    public String toString() {
        return "Dog{" +
                "name='" + name + '\'' +
                '}';
    }
}